<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
	</body>
	<script>
		//继承关键字：extends
		//调用父类的方法关键字：super
			//子类必须在constructor方法中调用super.父类方法，否则会报错
			//super.父类方法会修改this指向
			//所以在子类的构造函数中若要使用super.父类方法，则必须把关于this的操作写在super.父类方法的后面，否则会报错
			//super可以当做函数使用，也可以当做对象使用
			//super();意思是执行父类的构造函数
			//super为对象，在子类的普通方法中指向父类的原型对象
				//在子类的静态方法中指向父类
			//super调用父类方法时，方法内部的this指向子类
		class Parent {
		  static myMethod(msg) {
		    console.log('static', msg);
		  }
		
		  myMethod(msg) {
		    console.log('instance', msg);
		  }
		}
		
		class Child extends Parent {
		  static myMethod(msg) {
		    super.myMethod(msg);
		  }
		
		  myMethod(msg) {
		    super.myMethod(msg);
		  }
		}
		
		Child.myMethod(1); // static 1
		
		var child = new Child();
		child.myMethod(2); // instance 2
	</script>
</html>
